// this 指向问题 call、apply 应用：

// es6 reset 运算符
function sayHi(...args) {
    // 函数里有 this，arguments,
    console.log(args);
    // console.log(arguments);
    // this 指向
    // 严格模式 ——》undefined
    // 非严格模式——》宿主环境——》前端：window||后端：global
    console.log('Hello', this.name);
}

// this
let person = {
    name: 'Cavan',
};

// sayHi.call():
// sayHi也是对象call方法    手动绑定this
sayHi.call(person, 1, 2);// 让普通函数运行，指定 函数运行时 this 指向
// call 第一个参数 指定this，其余参数 交给函数本身做参数

// sayHi.apply():
// apply 第一个参数 指定this，第二个参数 要是 数组
sayHi.apply(person, [1, 2, 3]);